The present invention relates to the interaction between processes of different enterprises, and in particular, to checking whether processes from different enterprises can interact without deadlocking.
Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
The Business Process Execution Language for Web Services (BPEL) has quickly evolved into a widely accepted industry standard for representing and executing business processes. Other than its ability to describe interactions and collaborations between web services on the level of one business process, BPEL also allows collaborations between many business processes, thereby performing choreography between web services which are part of the different business processes. A BPEL business process may be generally referred to as a process.
A process, described in BPEL, can include calls to and replies from other processes in the form of BPEL activities (e.g., invoke, reply, etc.). In one process, the sequence of these calls and replies occur in a predefined order, depending on the workflow described by the process's BPEL specification. For any two business processes to be able to interact successfully without reaching any deadlocks, each process must have a sequence of calls and replies which corresponds to the other process. Or, in other words, a full matching of the communication patterns between the sender and receiver is necessary for them to interact without deadlocks.
It is often the case that a single enterprise can design its processes such that its processes can interact without deadlocks. Even then, there might be some unexpected scenarios which might lead to interaction problems and deadlocks. Moreover, the vision of inter-enterprise integration is to have different enterprises providing their web services and processes for usage by other enterprises. However, interaction between processes of different enterprises is usually not possible due to mismatches in the interaction patterns, which would lead to deadlocks even in simple cases. Hence, these deadlocks represent a limitation for achieving wider interoperability.
Thus, there is a need for improved ways of determining whether processes can interact without deadlocking. The present invention solves these and other problems by providing an automatic tool for interoperability checking of BPEL processes.